home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1995 November / EnigmA AMIGA RUN 02 (1995)(G.R. Edizioni)(IT)[!][issue 1995-11][Skylink CD].iso / earcd / util / text / xes.lha / XES / REXX / MultiFiles.xdme < prev    next >
Text File  |  1995-08-01  |  5KB  |  155 lines

  1. /* $VER: MultiFiles.xdme 1.0 (01 Aug 1995) */
  2. /* Uses the ReqTools File Requester to delete, crunch,
  3.    decrunch, copy, move, print, or load multiple files */
  4. /* Copyright © 1995 Fergus Duniho */
  5.  
  6. PARSE ARG com .
  7.  
  8. SELECT
  9.     WHEN com = "ViewArc" THEN DO
  10.         hailstr = "Select Archives to View"
  11.         oktext = "_View"
  12.     END
  13.     WHEN com = "Unarchive" THEN DO
  14.         hailstr = "Select Archives to Extract"
  15.         oktext = "_Extract"
  16.     END
  17.     OTHERWISE DO
  18.         hailstr = "Select Files to" com
  19.         oktext = "_" || com
  20.     END
  21. END
  22. tagstr = "rt_reqpos=reqpos_centerscr rtfi_flags=freqf_multiselect|freqf_patgad"
  23. IF com = "Delete" THEN tagstr = tagstr || "|freqf_selectdirs|freqf_save"
  24. IF com = "Load" THEN tagstr = tagstr "rtfi_matchpat=~(#?.xsrc)"
  25. ADDRESS 'XDME.1'
  26. OPTIONS RESULTS
  27. 'rxresult $path'
  28. P = result
  29. 'rxresult $fname'
  30. N = result
  31.  
  32. IF com = "ViewArc" | com = "Unarchive" THEN do
  33.     P = "Misc:Archives"
  34.     N = ""
  35. end
  36.  
  37. CALL rtfilerequest(P,N,hailstr,oktext,tagstr,files)
  38. IF files = 0 THEN EXIT
  39.  
  40. SELECT
  41.     WHEN com = "Delete" THEN DO X = 1 TO files.count
  42.         CALL Remove files.X
  43.     END
  44.     WHEN com = "Unpack" THEN DO X = 1 TO files.count
  45.         C = 'xpack "' || files.X || '"'
  46.         SAY "Unpacking" files.X "..."
  47.         ADDRESS Command C
  48.     END
  49.     WHEN com = "Copy" | com = "Move" THEN DO
  50.         IF files.count = 1 THEN DO
  51.             tagstr = "rt_reqpos=reqpos_centerscr rtfi_flags=freqf_patgad"
  52.             dest = rtfilerequest(P,N,"Select Destination",,tagstr)
  53.         END
  54.         ELSE DO
  55.             tagstr = "rt_reqpos=reqpos_centerscr rtfi_flags=freqf_nofiles"
  56.             dest = rtfilerequest(P,,"Select Destination",,tagstr)
  57.         END
  58.         IF rtresult = 1 THEN DO
  59.             DO X = 1 TO files.count
  60.                 C = com '"' || files.X || '" "' || dest || '"'
  61.                 SAY C
  62.                 ADDRESS COMMAND C
  63.             END
  64.         END
  65.     END
  66.     WHEN com = "Print" THEN DO
  67.         D = Request(22,19,"Select Destination", "PRT:", " Print ", " Cancel ")
  68.         IF D ~= "" THEN DO
  69.             DO X = 1 TO files.count
  70.                 C = 'Type "' || files.X || '" to "' || D || '"'
  71.                 SAY C
  72.                 ADDRESS COMMAND C
  73.             END
  74.         END
  75.     END
  76.     WHEN com = "Run" THEN DO X = 1 TO files.count
  77.         C = 'runback "' || files.X || '"'
  78.         SAY C
  79.         ADDRESS COMMAND C
  80.     END
  81.     WHEN com = "Load" THEN DO X = 1 TO files.count
  82.             C = "newwindow chfilename (" || files.X || ") rx REXX:LoadFile"
  83.             C
  84.     END
  85.     WHEN com = "Unarchive" THEN DO
  86.         tagstr = "rt_reqpos=reqpos_centerscr rtfi_flags=freqf_nofiles|freqf_save"
  87.         dest = rtfilerequest(P,,"Select Destination",,tagstr)
  88.         IF rtresult = 1 THEN DO
  89.             DO X = 1 TO files.count
  90.                 tail = Upper(right(files.X, 3))
  91.                 SELECT
  92.                     WHEN tail = "LHA" | tail = "LZH" | tail = "RUN" THEN
  93.                         unarc = 'lha -m -a x "' || files.X || '"' '"' || dest || '"'
  94.                     WHEN tail = "ZIP" THEN
  95.                         unarc = 'unzip -o "' || files.X || '"'
  96.                     WHEN tail = "ZOO" THEN
  97.                         unarc = 'zoo x./ "' || files.X || '"'
  98.                     WHEN tail = "LZX" THEN
  99.                         unarc = 'LZX -m -a x "' || files.X || '"' '"' || dest || '"'
  100.                     OTHERWISE ITERATE
  101.                 END
  102.                 SAY unarc
  103.                 ADDRESS COMMAND unarc
  104.             END
  105.         END
  106.     END
  107.     WHEN com = "ViewArc" THEN DO
  108.         CALL Delete 'T:Archives'
  109.         DO X = 1 TO files.count
  110.             tail = upper(right(files.X, 3))
  111.             SELECT
  112.                 WHEN tail = "LHA" | tail = "LZH" | tail = "RUN" THEN
  113.                     view = 'lha >>T:Archives v'
  114.                 WHEN tail = "ZIP" THEN
  115.                     view = 'unzip >>T:Archives -v'
  116.                 WHEN tail = "ZOO" THEN
  117.                     view = 'zoo >>T:Archives -list'
  118.                 WHEN tail = "LZX" THEN
  119.                     view = 'LZX >>T:Archives v'
  120.                 OTHERWISE ITERATE
  121.             END
  122.             C = 'execute (' || view '"' || files.X || '")'
  123.             C
  124.         END
  125.         'execute (C:runback More T:Archives)'
  126.     END
  127.     OTHERWISE DO X = 1 TO files.count
  128.         C = 'xpack "' || files.X || '" method' com
  129.         SAY "Packing" files.X "with" com "compression ..."
  130.         ADDRESS COMMAND C
  131.     END
  132. END
  133. EXIT
  134.  
  135. Remove: Procedure
  136.     PARSE ARG fname
  137.     IF word(statef(fname), 1) = "DIR" THEN DO
  138.         CALL Filelist(Pattern(fname), files, , "E")
  139.         DO x = 1 TO files.0
  140.             CALL Remove files.x
  141.         END
  142.     END
  143.     SAY "Deleting" fname "..."
  144.     CALL delete fname
  145.     CALL delete fname || ".info"
  146. RETURN
  147.  
  148. Pattern: Procedure
  149.     PARSE ARG dir
  150.     IF Right(dir, 1) ~= ":" THEN
  151.         pat = dir || "/*"
  152.     ELSE
  153.         pat = dir || "*"
  154. RETURN pat
  155.